package com.shixi.shixitraining.shixitraining.http;

import com.shixi.shixitraining.shixitraining.ui.tabapply.entity.ApplyEmploymentBean;
import com.shixi.shixitraining.shixitraining.ui.tabapply.entity.ApplyTrainBean;
import com.shixi.shixitraining.shixitraining.ui.tabapply.entity.ApplyTrainingBean;
import com.shixi.shixitraining.shixitraining.ui.tabapply.entity.EmploymentDetailBean;
import com.shixi.shixitraining.shixitraining.ui.tabapply.entity.TrainDetailBean;
import com.shixi.shixitraining.shixitraining.ui.tabapply.entity.TrainingDetailBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.AuthenBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.BannerBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.HomeBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.HotJobBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.MyCollectBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.OverseaSubmitApplyBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.OversearApplyBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.OverseasDetailBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.TrainAuthenBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.TrainSubmitApplyBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.TrainingListBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.TrainingListDetailBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.TrainingSubmitApplyBean;
import com.shixi.shixitraining.shixitraining.ui.tabhome.entity.UpdataBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.IconBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.InfoBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.JobCollectBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.JobPayBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.LoginBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.RegisterBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.ResetPasswordBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.SignoutBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.TrainPayBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.TrainingPayBean;
import com.shixi.shixitraining.shixitraining.ui.tabmine.entity.upLoadImageBean;

import java.io.File;
import java.util.Map;

import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.Query;
import retrofit2.http.Url;

/**
 * Created by shenyan on 2018/9/13.
 */
public interface APIInterface {


    /***************注册***********/

    @FormUrlEncoded
    @POST("/signin/reghandle")
    Call<RegisterBean> register(@FieldMap Map<String, String> parmas);

    //登录
    @FormUrlEncoded
    @POST("/signup/uphandle")
    Call<LoginBean> login(@FieldMap Map<String, Object> parmas);

    //修改密码
    @FormUrlEncoded
    @POST("/member/uppassword")
    Call<ResetPasswordBean> reset(@FieldMap Map<String, Object> parmas);

    //退出登录
    @GET()
    Call<SignoutBean> signOut(@Url String url);

    //banner
    @GET()
    Call<BannerBean>  banner(@Url String url);
    //首页列表
    @GET
    Call<HomeBean> homeList(@Url String url);

    //实训列表页
    @GET
    Call<TrainingListBean>  trainingList(@Url  String url);
    //实训详情
   @GET
    Call<TrainingListDetailBean> trainingDetail(@Url String url);
    // 培训列表页
    @GET
    Call<TrainAuthenBean>  TrainAuthen(@Url  String url);

    //培训详情
    @GET
    Call<AuthenBean> AuthenDetail(@Url String url);

    //职位列表页
    @GET
    Call<HotJobBean>  hotJob(@Url String  url);

    //职位详情
    @GET
    Call<OverseasDetailBean> jobDetail(@Url  String url);
    //海外就业申请
    @GET
    Call<OversearApplyBean> overseaApply(@Url String url);

    //上传头像
    @GET
    Call<IconBean> userIcon(@Url String url);

    //修改信息
    @FormUrlEncoded
    @POST("/member/info")
    Call<InfoBean> info(@FieldMap Map<String,String> parmas);

    //上传文件
    @FormUrlEncoded
    @POST("/common/upload")
    Call<UpdataBean>  updataFile(@FieldMap Map<String,Object> parmas);

    @Multipart
    @POST("/common/upload")
    Call<UpdataBean> upload(@Part MultipartBody.Part file);

//    @Multipart
    @POST("/common/upload")
    Call<UpdataBean> upFile(@Query("fiel") File file);

    //上传图片   @PartMap Map<String,String> params, @Part MultipartBody.Part file
    @FormUrlEncoded
    @POST("/common/uploadimage")
    Call<upLoadImageBean> upLoadImage(@PartMap Map<String,String> params);

    //就业岗位申请
    @GET
    Call<ApplyEmploymentBean>  applyEmploy(@Url String url);
    //实训项目
    @GET
    Call<ApplyTrainingBean>  applyTraining(@Url String url);
    //职业培训
    @GET
    Call<ApplyTrainBean>  applyJob(@Url String url);

    //申请就业详情
    @GET
    Call<EmploymentDetailBean>  applyEmploymentDetail(@Url String url);
    //申请实训详情
    @GET
    Call<TrainingDetailBean>  applyTrainingDetail(@Url  String url);
    //申请职业培训详情
    @GET
    Call<TrainDetailBean> applyTrainDetail(@Url String url);

    //实训报名提交
    @FormUrlEncoded
    @POST
    Call<TrainingSubmitApplyBean> trainingSubmitApply(@PartMap Map<String,Object> params);

    //职业培训报名提交
    @FormUrlEncoded
    @POST("/train/apply")
    Call<TrainSubmitApplyBean> trainSubmitApply(@PartMap Map<String,Object>  params);


    //海外就业报名提交
    @FormUrlEncoded
    @POST("/job/apply")
    Call<OverseaSubmitApplyBean> overseaSubmitApply(@PartMap Map<String,Object> params);

    //添加收藏
    @GET
    Call<MyCollectBean> myCollect(@Url String url);
    //就业岗位收藏
    @GET
    Call<JobCollectBean> jobCollect(@Url String url);

    //职业培训收藏
    @GET
    Call<JobCollectBean> trainCollect(@Url String url);

    //实训项目收藏
    @GET
    Call<JobCollectBean> trainingCollect(@Url String url);

    //就业支付
    @GET
    Call<JobPayBean> jobPay(@Url String url);
    //实训支付
    @GET
    Call<TrainingPayBean> traingPay(@Url String url);
    //培训支付
    @GET
    Call<TrainPayBean>  trainPay(@Url String url);














}
